package br.ucb.ProjetoFinal.view;

import br.ucb.ProjetoFinal.bean.ApresentacaoLoteRemessa;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

/*
 * Managed bean responsavel pelo caso de uso MANTER LOTE/REMESSA
 */
@ManagedBean(name="managedLoteRemessa")
@SessionScoped
public class ManagedLoteRemessa {

//////////////////////////////////ATRIBUTOS/////////////////////////////////////

    //Usado tanto no cadastro quanto nas consultas, para armazenar o valor dos campos
    private ApresentacaoLoteRemessa loteRemessa;
    //Esta LIST receberá os vários loteRemessas cadastrados, na hora da pesquisa
    private List<ApresentacaoLoteRemessa> loteRemessas;
    //Usado na CONSULTA
    private String numRadioPesquisa;
    private String dtInicio;
    private String dtFim;

    //Usado para indicar pesquisa sem resultados
    private Boolean semResults;

////////////////////////////////////////////////////////////////////////////////

    public ManagedLoteRemessa() {
        //Seta o valor inicial para os radio-buttons na pagina da consulta
        setNumRadioPesquisa("sit");
        setLoteRemessa(new ApresentacaoLoteRemessa());
        setDtFim(null);
        setDtInicio(null);
    }


    // METODO USADO PARA PESQUISA DE LOTE/REMESSAS////////////////////////////
        public String procurar(){

            //setLoteRemessas(escolhe.pesquisaLoteRemessas(getNumRadioPesquisa(),getLoteRemessa()));

            //Se o array estiver vazio, significa que não foram encontrados resultados
            if(getLoteRemessas().isEmpty())
                setSemResults(true);
            else
                setSemResults(false);

            return "procurarEmpr";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    // METODO USADO PARA DETALHAR UM LOTE/REMESSA/////////////////////////////
        public String detalhar(){
            String index = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("index");
            setLoteRemessa(getLoteRemessas().get(Integer.parseInt(index)));

            return "result";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    //FUNÇÃO USADA PARA CONSULTAR A SITUAÇÃO DE UM LOTE/REMESSA

        public String consultaLoteRemessa(){
            setLoteRemessa(new ApresentacaoLoteRemessa());

            return "consultaLotRemes";
        }
    //FIM DAS FUNÇÕES///////////////////////////////////////////////////////////


//GETTERS & SETTERS/////////////////////////////////////////////////////////////
    public ApresentacaoLoteRemessa getLoteRemessa() {
        return loteRemessa;
    }

    public void setLoteRemessa(ApresentacaoLoteRemessa loteRemessa) {
        this.loteRemessa = loteRemessa;
    }

    public void setLoteRemessas(List<ApresentacaoLoteRemessa> loteRemessas) {
        this.loteRemessas = loteRemessas;
    }

    public List<ApresentacaoLoteRemessa> getLoteRemessas() {
        return loteRemessas;
    }

    public void setNumRadioPesquisa(String numRadioPesquisa) {
        this.numRadioPesquisa = numRadioPesquisa;
    }

    public String getNumRadioPesquisa() {
        return numRadioPesquisa;
    }

    public void setSemResults(Boolean semResults) {
        this.semResults = semResults;
    }

    public Boolean getSemResults() {
        return semResults;
    }

    public void setDtInicio(String dtInicio) {
        this.dtInicio = dtInicio;
    }

    public String getDtFim() {
        return dtFim;
    }

    public String getDtInicio() {
        return dtInicio;
    }

    public void setDtFim(String dtFim) {
        this.dtFim = dtFim;
    }

}
